2.1 最简单的 Objective-C 程序
说明:项目创建过程如下
- 创建 workspace:File-New-Workspace
- 创建 project:File-New->Project
- 选择模版:OS X->Applicetion-> Command Line
- 选择语言:Object-C
- 选择 Workspace
2.2 解构 Hello Objective-C 程序
默认编译器: XCode 的默认编译器为
LLVM,可以处理C(.c文件)、C++(.cpp)、Objective-C(.m)。
扩展:扩展名.m代表message,它值得是Object-C的一个主要特征。
1 | // O-C 支持的模块导入方式 |
2.2.1 #import 语句
功能:通知编译器查询头文件中相应的代码并导入,一个文件中只会被包含一次(无论调用多少次
#import语句)
说明:相比C的#include,#import能避免文件相互包含的情况导致的错误(C语言通过ifdef实现)。
注意:Foundation框架的头文件占用了近1MB的磁盘空间,使用#import <Foundation/Foundation.h>包含头文件时,Xcode使用预编译头文件加快读取速度。
2.2.2 框架
框架:是一种把
头文件、库、图片、声音等内容聚集在一个独立单元中的集合体。
框架集:一系列框架的集合。
苹果公司提供的框架集
说明:苹果公司将
Cocoa、Carbon、QuickTime、OpenGL等技术作为框架集来提供。
Cocoa框架集:包括以下框架
- Foundation
- Application Kit(简称AppKit)
- 支持性框架(Core Animation 和 Core Image)
2.2.3 NSLog()和@"字符串"
说明:
Cocoa给其所有函数、常量和类型名都添加了NS前缀(使用NS而不是Cocoa源自历史遗留:Cocoa的前身为NextSTEP工具包)。
NSLog函数
说明:用于向控制台输出内容
原型:NSObjCRuntime.h
1
2
3
4
5 /**
** @param {NSString *} format 字符串(可以包含格式说明符)
** @param {...} 对应格式串中格式说明符可变参数
*/
void NSLog(NSString *format, ...)技巧:建议在
O-C中使用NSLog替代printf,因为它添加了一些特性,比如
- 时间戳
- 日期戳
- 自动附带换行符
\n等
NSString(@"字符串")
说明:
Cocoa提供的NSString集成了大量C语言字符串没有的特性。@"字符串"表明其中的字符串作为Cocoa的NSString元素来处理。
- 字符串的长度
- 字符串比较
- 转换为整数和浮点数
格式串:输出对象使用
%@,会调用对象的description方法
2.3 布尔类型
关键字:
BOOL(比C语言的bool早十多年)
说明:本质是signed char(通过typedef定义),使用8位存储空间
NO:本质是signed char值0YES:本质是signed char值1注意:
O-C的BOOL不仅能保存NO和YES,编译器将其作为8位二进制数处理,也就是说可以赋值其它整数和char类型值(大于一个字节将溢出)。
2.3.1 BOOL 强大的实用功能
1 |
|